//https://dafrok.github.io/vue-baidu-map/#/zh/overlay/circle
//https://www.cnblogs.com/nele/p/5039031.html
  //1、定义构造函数并继承Overlay
        // 定义自定义覆盖物的构造函数
        function BPoint(center, options) {
            this._center = center;
            this._options = options;
        }
        // 继承API的BMap.Overlay
        BPoint.prototype = new BMapGL.Overlay();

        //2、初始化自定义覆盖物
        // 实现初始化方法
        BPoint.prototype.initialize = function (map) {
            // 保存map对象实例
            this._map = map;
            // 创建div元素，作为自定义覆盖物的容器
            var div = document.createElement("div");
            div.className="bpoint";
            div.style.position="absolute";
            for(var k in this._options) div[k]=this._options[k];
                        
            // 创建img元素 作为图像显示
            var img = document.createElement("img");
            //图像相关设置
            img.src = this._src;
            img.style.height = this._length + "px";
            img.style.width = this._length + "px";
            img.style.borderRadius = "50px";
            //div.appendChild(img);
            
            // 将div添加到覆盖物容器中
            map.getPanes().markerPane.appendChild(div);
            // 保存div实例
            this._div = div;
            // 需要将div元素作为方法的返回值，当调用该覆盖物的show、
            // hide方法，或者对覆盖物进行移除时，API都将操作此元素。
            return div;
        }

        //3、绘制覆盖物
        // 实现绘制方法
        BPoint.prototype.draw = function () {
            // 根据地理坐标转换为像素坐标，并设置给容器
            var position = this._map.pointToOverlayPixel(this._center);
            this._div.style.left = position.x ;
            this._div.style.top = position.y;            
        }

        //4、显示和隐藏覆盖物
        // 实现显示方法
        BPoint.prototype.show = function () {
            if (this._div) {
                this._div.style.display = "";
            }
        }
        // 实现隐藏方法
        BPoint.prototype.hide = function () {
            if (this._div) {
                this._div.style.display = "none";
            }
        }

        //6、自定义覆盖物添加事件方法
        BPoint.prototype.addEventListener = function (event, fun) {
            this._div['on' + event] = fun;
        }

        //7、添加自定义覆盖物
//        var mySquare = new BPoint(new BMap.Point(116.404, 40), 50, "http://hgproductimg.oss-cn-qingdao.aliyuncs.com/20151208/64e6168047e94e1fac4e94493b2521fc.jpg");